#ifndef tool_action_h
#define tool_action_h

#import "tool.h"

/*action_call_back
*/
@interface action_call_back : CCActionInterval<NSCopying>
{
	id targetCallBack_;
	SEL selector_;
}

+ (id)actionWithDuration:(id)Object time:(ccTime)Time callback:(SEL)selector;
- (id)initWithDuration:(id)Object time:(ccTime)Time callback:(SEL)selector;
- (id)copyWithZone:(NSZone *)zone;
- (void)startWithTarget:(CCNode *)aTarget;
- (void)stop;

@end

/*action_move_in_pixel
*/
@interface action_move_in_pixel : CCActionInterval<NSCopying>
{
	CGPoint startPosition_;
	CGPoint endPosition_;
	CGPoint delta_;
}

+ (id)actionWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)initWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)copyWithZone:(NSZone *)zone;
- (void)startWithTarget:(id)target;
- (void)update:(ccTime)Time;

@end

/*action_move_x_in_pixel
*/
@interface action_move_x_in_pixel : CCActionInterval<NSCopying>
{
	CGPoint startPosition_;
	CGPoint endPosition_;
	CGPoint delta_;
}

+ (id)actionWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)initWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)copyWithZone:(NSZone *)zone;
- (void)startWithTarget:(CCNode *)aTarget;
- (void)update:(ccTime)Time;

@end

/*action_move_y_in_pixel
*/
@interface action_move_y_in_pixel : CCActionInterval<NSCopying>
{
	CGPoint startPosition_;
	CGPoint endPosition_;
	CGPoint delta_;
}

+ (id)actionWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)initWithDuration:(ccTime)Time position:(CGPoint)Position;
- (id)copyWithZone:(NSZone *)zone;
- (void)startWithTarget:(CCNode *)aTarget;
- (void)update:(ccTime)Time;

@end

action_call_back *tcCreateActionCallBack(id Object, float Time, SEL Selector);
action_move_in_pixel *tcCreateActionMove(CGPoint Start, CGPoint End, float Speed);
CCRepeatForever *tcCreateRepeatAnimate(UIAnimationObject *Object);

#endif